/*
 * 版权所有 (c) 2025, Amor
 * 基于MIT许可证条款分发
 */

/**	该文件包含ELF可执行文件中".init"和".fini"段的起始部分。
 *	这里定义的函数将在加载的可执行文件/库的初始化/终止期间被调用。
 *	".init"和".fini"段的组织结构如下：
 *
 *	crti.S		入口点
 *				调用_init_before/_term_before
 *	crtbegin.S	GCC特定功能：调用构造函数/析构函数等
 *	crtend.S
 *	crtn.S		调用_init_after/_term_after
 *				退出
 */

#define FUNCTION(x) .global x; .type x,%function; x

.section .init
FUNCTION(_init):
	addi sp, sp, -16
	st.d ra, sp, 8
	/* 此处放置crtbegin.o的内容 */

.section .fini
FUNCTION(_fini):
	addi sp, sp, -16
	st.d ra, sp, 8
	/* 此处放置crtend.o的内容 */